package com.baomidou.springmvc.common;

import java.lang.annotation.Annotation;
import java.util.Date;

import com.baomidou.springmvc.annotation.MyAnnotationTest;
import org.apache.ibatis.reflection.MetaObject;

import com.baomidou.mybatisplus.mapper.MetaObjectHandler;

/**
 * 自定义填充处理器
 */
public class MyMetaObjectHandler extends MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {

        //获得对应实体的注解，判断是否有特定注解去过滤哪些实体去执行该处理器
        Annotation[] ans = metaObject.getOriginalObject().getClass().getAnnotations();

        for (Annotation an : ans) {
            System.out.println(an.getClass().getName());
        }

        //判断对应实体是否某实体子类，去过滤哪些实体去执行该处理器
        if(metaObject.getOriginalObject() instanceof SuperEntity){
            System.out.println("");
        }


        this.setFieldValByName("ctime", new Date(), metaObject);


    }

    @Override
    public boolean openUpdateFill() {
        return false;
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        // 关闭更新填充、这里不执行
    }
}
